package controleur;

import java.util.ArrayList;

import modele.Unite;

public class ControleurUnite {
	// Variable(s) d'instance
	private Unite unite;
	
	// Constructeur(s)
	public ControleurUnite(Unite u) {
		this.unite = u;
	}
	
	public ControleurUnite(String nom, int x, int y) {
		this.unite=new Unite(nom, x, y);
	}
	
	// Accesseur(s)
	public Unite getUnite() {
		return this.unite;
	}
	
	// Methode(s)
	public void setTrajectoire(ArrayList<ControleurCoordonnee> l) {
		this.unite.setTrajectoire(l);
	}
	
	public String coordonneeActuelleToString() {
		return this.unite.getCoordonneeActuelle().toString();
	}
	
	public String toString() {
		return "L'unite "+this.unite.getNom()+" se trouve sur la case "+this.coordonneeActuelleToString();
	}
	
	public String trajectoireToString() {
		ControleurCoordonnee coordonnee;
		String retour="";
		int i = 0;
		while(i < this.unite.getTrajectoire().size()) {
			coordonnee = this.unite.getTrajectoire().get(i);
			if(i != 0) {
				retour+="->";
			}
			retour+="("+this.unite.getNom()+","+coordonnee.toString()+")";
			i++;
		}
		return retour;
	}
	
	public void incrementerIndiceActuelTrajectoire() {
		this.unite.setIndiceActuelTrajectoire(this.unite.getIndiceActuelTrajectoire()+1);
	}
	
	public int getIndiceActuelTrajectoire() {
		return this.unite.getIndiceActuelTrajectoire();
	}
	
	public boolean contientDansTrajectoire(int numCase) {
		int i = 0;
		boolean trouve = false;
		while(i < this.getUnite().getTrajectoire().size() && !trouve) {
			trouve=(ControleurGrapheCase.getNumeroCase(this.getUnite().getTrajectoire().get(i).getX(), this.getUnite().getTrajectoire().get(i).getY())==numCase);
			i++;
		}
		return trouve;
	}
}
